package org.jutils.ui.model;

/***************************************************************************
 * @param <T>
 **************************************************************************/
public interface ITableConfig<T>
{
    /***************************************************************************
     * @return
     **************************************************************************/
    public String [] getColumnNames();

    /***************************************************************************
     * @return
     **************************************************************************/
    public Class<?> [] getColumnClasses();

    /***************************************************************************
     * @param item
     * @param col
     * @return
     **************************************************************************/
    public Object getItemData( T item, int col );

    /***************************************************************************
     * @param item
     * @param col
     * @param data
     **************************************************************************/
    public void setItemData( T item, int col, Object data );

    /***************************************************************************
     * @param col
     * @return
     **************************************************************************/
    public boolean isCellEditable( int col );
}
